﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

public partial class Admin_EditOrder : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Form["act"] == null)
        {
            string act = "";
            int objId = 0;
            if (Request.QueryString["act"] != null)
                act = Request.QueryString["act"].ToString();
            if (Request.QueryString["id"] != null)
                objId = Convert.ToInt32(Request.QueryString["id"].ToString());

            if (act == "" || objId <= 0) Response.Redirect("OrderManager.aspx");
            NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();
            PhieuDatHang obj = new PhieuDatHang();
            if (act != "" && objId > 0)
            {
                if (act == "view")
                {
                    NgayDatHangTextBox.Enabled = false;
                    ThanhTienTextBox.Enabled = false;
                    PhiVanChuyenTextBox.Enabled = false;
                    KhachHangComboBox.Enabled = false;
                    TinhTrangComboBox.Enabled = false;
                    ThanhPhoDenComboBox.Enabled = false;
                    NhaVanChuyenComboBox.Enabled = false;
                    NgayDiDuKienTextBox.Enabled = false;
                    NgayDenDuKienTextBox.Enabled = false;
                    LienKetTheoDoiTextBox.Enabled = false;
                    DiaChiGiaoHangTextBox.Enabled = false;
                    DiaChiGiaoHang2TextBox.Enabled = false;
                    DienThoaiDiDongTextBox.Enabled = false;
                    DienThoaiBanTextBox.Enabled = false;
                    btnCapNhat.Visible = false;
                    NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.information, "Thông tin chi tiết");

                }
                if ((from ob in db.PhieuDatHangs
                     where ob.MaPDH.Equals(objId)
                     select ob).Count() > 0)
                {
                    obj = (from ob in db.PhieuDatHangs
                           where ob.MaPDH.Equals(objId)
                           select ob).Single();

                    MaPhieuDatHangLabel.Text = obj.MaPDH.ToString();

                    if (obj.NgayDatHang != null)
                        NgayDatHangTextBox.Text = obj.NgayDatHang.ToShortDateString();
                    else
                        NgayDatHangTextBox.Text = "";

                    ThanhTienTextBox.Text = obj.ThanhTien.ToString();


                    PhiVanChuyenTextBox.Text = obj.PhiVanChuyen.ToString();


                    KhachHangComboBox.DataSource = (from ob in db.TaiKhoans select new {ob.MaKhachHang,ob.TenDangNhap }).Distinct();
                    KhachHangComboBox.DataValueField = "MaKhachHang";
                    KhachHangComboBox.DataTextField = "TenDangNhap";
                    KhachHangComboBox.DataBind();
                    KhachHangComboBox.SelectedValue = obj.MaKhachHang.ToString();                                      
                   
                    
                    if (Session["CitiesList"] != null)
                    {
                        DataTable dtTP = (DataTable)Session["CitiesList"];
                        ThanhPhoDenComboBox.DataSource = dtTP;
                        ThanhPhoDenComboBox.DataTextField = dtTP.Columns["CityName"].ToString();
                        ThanhPhoDenComboBox.DataValueField = dtTP.Columns["CityID"].ToString();
                        ThanhPhoDenComboBox.DataBind();
                        if (obj.MaThanhPhoDen != null)
                            ThanhPhoDenComboBox.SelectedValue = obj.MaThanhPhoDen;
                        else
                            ThanhPhoDenComboBox.SelectedValue = "NULL";
                    }

                    NhaVanChuyenComboBox.DataSource = (from ob in db.NhaVanChuyens select new { ob.CarrierID, ob.CarrierName }).Distinct();
                    NhaVanChuyenComboBox.DataValueField = "CarrierID";
                    NhaVanChuyenComboBox.DataTextField = "CarrierName";
                    NhaVanChuyenComboBox.DataBind();                   
                   
                    if (obj.MaNhaVanChuyen != null)
                        NhaVanChuyenComboBox.SelectedValue = obj.MaNhaVanChuyen.ToString();
                    else
                        NhaVanChuyenComboBox.SelectedValue ="NULL";
                   
                   

                    if (obj.NgayDiDuKien != null)
                        NgayDiDuKienTextBox.Text = obj.NgayDiDuKien.ToString();
                    else
                        NgayDiDuKienTextBox.Text = "";

                    if (obj.NgayDenDuKien != null)
                        NgayDenDuKienTextBox.Text = obj.NgayDenDuKien.ToString();
                    else
                        NgayDenDuKienTextBox.Text = "";

                    if (obj.LienKetTheoDoiVC != null)
                        LienKetTheoDoiTextBox.Text = obj.LienKetTheoDoiVC;
                    else
                        LienKetTheoDoiTextBox.Text = "";

                    if (obj.DiaChiGiaoHang != null)
                        DiaChiGiaoHangTextBox.Text = obj.DiaChiGiaoHang;
                    else
                        DiaChiGiaoHangTextBox.Text = "";

                    if (obj.DiaChiThuHai != null)
                        DiaChiGiaoHang2TextBox.Text = obj.DiaChiThuHai;
                    else
                        DiaChiGiaoHang2TextBox.Text = "";

                    if (obj.DienThoaiLienHe != null)
                        DienThoaiDiDongTextBox.Text = obj.DienThoaiLienHe;
                    else
                        DienThoaiDiDongTextBox.Text = "";

                    if (obj.DienThoaiBan != null)
                        DienThoaiBanTextBox.Text = obj.DienThoaiBan;
                    else
                        DienThoaiBanTextBox.Text = "";
                }
            }
        }
        else
        {
            if (InValidateForm() == false && Request.Form["act"] != null)
            {
                NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();
                var objQuery = (from ob in db.PhieuDatHangs
                                where ob.MaPDH.Equals(MaPhieuDatHangLabel.Text.Trim())
                                select ob).Single();

                objQuery.NgayDatHang = Convert.ToDateTime(NgayDatHangTextBox.Text);
                objQuery.ThanhTien = Convert.ToDouble(ThanhTienTextBox.Text);
                objQuery.PhiVanChuyen = Convert.ToDouble(PhiVanChuyenTextBox.Text.Trim());
                objQuery.MaKhachHang = Convert.ToInt32(KhachHangComboBox.SelectedValue);
                objQuery.MaTinhTrang = Convert.ToInt32(TinhTrangComboBox.SelectedValue);
                if (ThanhPhoDenComboBox.SelectedValue != "NULL")
                     objQuery.MaThanhPhoDen = ThanhPhoDenComboBox.SelectedValue;
                if (NhaVanChuyenComboBox.SelectedValue != "NULL")
                     objQuery.MaNhaVanChuyen = Convert.ToInt32(NhaVanChuyenComboBox.SelectedValue);
                objQuery.NgayDiDuKien = Convert.ToDateTime(NgayDiDuKienTextBox.Text);
                objQuery.NgayDenDuKien = Convert.ToDateTime(NgayDenDuKienTextBox.Text);
                objQuery.LienKetTheoDoiVC = LienKetTheoDoiTextBox.Text;
                objQuery.DiaChiGiaoHang = DiaChiGiaoHangTextBox.Text;
                objQuery.DiaChiThuHai = DiaChiGiaoHang2TextBox.Text;
                objQuery.DienThoaiLienHe = DienThoaiDiDongTextBox.Text;
                objQuery.DienThoaiBan = DienThoaiBanTextBox.Text;
                db.SubmitChanges();
                NotificationMessage.InnerHtml =NotificationHelper.SetNotification(NotificationHelper.Notification.success, string.Format("Thông tin phiếu đặt hàng <strong>{0}</strong> đã được cập nhật thành công.", objQuery.MaPDH));


            }
        }

    }

    public bool InValidateForm()
    {
        bool error = false;

        if (MaPhieuDatHangLabel.Text.Trim() == "")
            error = true;

        if (NgayDatHangTextBox.Text == "")
        {
            NgayDatHangTextBox.Focus();
            ErrorNgayDatHangTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
        {
            DateTime ngaydathang = new DateTime();
            bool ns = DateTime.TryParse(NgayDatHangTextBox.Text, out ngaydathang);
            if (ns)
            {
                ErrorNgayDatHangTextBox.InnerHtml = "";
                error = false;
                if (DateTime.Today > ngaydathang)
                {
                    error = true;
                    ErrorNgayDatHangTextBox.InnerHtml = "Ngày đặt hàng không thể nhỏ hơn ngày hiện tại.";
                }
            }
            else
            {
                error = true;
                ErrorNgayDatHangTextBox.InnerHtml = "Ngày đặt hàng không hợp lệ.";
            }
        }

        if (ThanhTienTextBox.Text == "")
        {
            ThanhTienTextBox.Focus();
            ErrorThanhTienTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
        {
            double thanhTien = 0.0;
            bool isTien = double.TryParse(ThanhTienTextBox.Text.Trim(), out thanhTien);
            if (isTien)
            {
                if (thanhTien < 0)
                {
                    ErrorThanhTienTextBox.InnerHtml = "Thành tiền không thể nhỏ hơn 0.";
                    error = true;
                }
                else
                    ErrorThanhTienTextBox.InnerHtml = "";
            }
            else {
                ErrorThanhTienTextBox.InnerHtml = "Thành tiền phải là số.";
                error = true;
            }
            
        }

        if (PhiVanChuyenTextBox.Text != "")
        {
            double phiVanChuyen = 0.0;
            bool isPhiVanChuyen = double.TryParse(PhiVanChuyenTextBox.Text.Trim(), out phiVanChuyen);
            if (isPhiVanChuyen)
            {
                if (phiVanChuyen < 0)
                {
                    ErrorPhiVanChuyenTextBox.InnerHtml = "Phí vận chuyển không thể nhỏ hơn 0.";
                    error = true;
                }
                else
                    ErrorPhiVanChuyenTextBox.InnerHtml = "";
            }
            else
            {
                ErrorPhiVanChuyenTextBox.InnerHtml = "Phí vận chuyển phải là số.";
                error = true;
            }
        }
        
        

        if (NgayDiDuKienTextBox.Text == "")
        {
            NgayDiDuKienTextBox.Focus();
            ErrorNgayDiDuKienTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
        {
            DateTime ngay = new DateTime();
            bool ns = DateTime.TryParse(NgayDiDuKienTextBox.Text, out ngay);
            if (ns)
            {
                ErrorNgayDiDuKienTextBox.InnerHtml = "";
                error = false;
                if (DateTime.Today > ngay)
                {
                    error = true;
                    ErrorNgayDiDuKienTextBox.InnerHtml = "Ngày dự kiến đi không thể nhỏ hơn ngày hiện tại.";
                }
            }
            else
            {
                error = true;
                ErrorNgayDiDuKienTextBox.InnerHtml = "Ngày dự kiến đi không hợp lệ.";
            }
        }


        if (NgayDenDuKienTextBox.Text == "")
        {
            NgayDenDuKienTextBox.Focus();
            ErrorNgayDenDuKienTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
        {
            DateTime ngay = new DateTime();
            bool ns = DateTime.TryParse(NgayDenDuKienTextBox.Text, out ngay);
            if (ns)
            {
                ErrorNgayDenDuKienTextBox.InnerHtml = "";
                error = false;
                if (DateTime.Today > ngay)
                {
                    error = true;
                    ErrorNgayDenDuKienTextBox.InnerHtml = "Ngày dự kiến đến không thể nhỏ hơn ngày hiện tại.";
                }
                else
                {
                    DateTime ngaydi = new DateTime();
                    ns = DateTime.TryParse(NgayDiDuKienTextBox.Text, out ngaydi);
                    if (ns)
                    {
                        if (ngay < ngaydi)
                        {
                            error = true;
                            ErrorNgayDenDuKienTextBox.InnerHtml = "Ngày dự kiến đến không thể nhỏ hơn ngày dự kiến đi.";
                        }

                    }
                }
            }
            else
            {
                error = true;
                ErrorNgayDatHangTextBox.InnerHtml = "Ngày dự kiến đến không hợp lệ.";
            }
        }


        if (DiaChiGiaoHangTextBox.Text == "")
        {
            DiaChiGiaoHangTextBox.Focus();
            ErrorDiaChiGiaoHangTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorDiaChiGiaoHangTextBox.InnerHtml = "";

        if (DienThoaiDiDongTextBox.Text == "")
        {
            DienThoaiDiDongTextBox.Focus();
            ErrorDienThoaiDiDongTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorDienThoaiDiDongTextBox.InnerHtml = "";

        if (error)
            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.error, "Bạn hãy kiểm tra lại các thông tin lỗi.");


        return error;
    }

    protected void NhaVanChuyenComboBox_DataBound(object sender, EventArgs e)
    {
        NhaVanChuyenComboBox.Items.Add(new ListItem("Không có", "NULL"));
    }
    protected void ThanhPhoDenComboBox_DataBound(object sender, EventArgs e)
    {
        ThanhPhoDenComboBox.Items.Add(new ListItem("Khác", "NULL"));
    }
   
}